home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / c64-preservation-project / apps / awardware_s1_program_disk[hi-tech_expressions_1987](alt2).nbz / t1 < prev    next >
Encoding:
Text File  |  2019-04-13  |  5.1 KB  |  1 lines

  1. ¢¢;INCLUDE"D3:SYS.ACT"¢¢CARD ARRAY EOM(1)¢¢BYTE ERRNUM,DD=54018,DATA=54016,JIF=20¢BYTE ARRAY BUF,XMOBUFF(128),buffer(4096)¢¢CARD A¢¢;***********************************¢¢;Burst I/O routines¢PROC WriteBlock=*(BYTE dev, CARD addr, size)¢ [$48$A9$B$85$A5$A9$0$85$A6$A5$A3$5$A4$D0$2$68$60$68]¢CHAR FUNC CIO=*(BYTE dev, CARD addr,size, BYTE cmd,aux1,aux2)¢ [$29$F$85$A0$86$A1$A$A$A$A$AA$A5$A5$9D$342$A5$A3$9D$348$A5$A4$9D$349$A5$A6$F0$8$9D$34A$A5$A7$9D$34B$98$9D$345¢  $A5$A1$9D$344$20$E456$8C Errnum$C0$88$D0$6$98$A4$A0$99 EOF$60]¢CARD FUNC ReadBlock=*(BYTE dev, CARD addr, size)¢ [$48$A9$7$85$A5$A9$0$85$A6$A5$A3$5$A4$D0$6$85$A0$85$A1$68$60$68$20 CIO$BD$348$85$A0$BD$349$85$A1$60]¢¢¢BYTE FUNC UPPER(BYTE A)¢  WHILE A>95 DO A==-32 OD¢RETURN(A)¢¢PROC EDITFN(BYTE ARRAY FN)¢byte a¢BYTE ARRAY TMPBUF(40)¢  FOR A=1 TO FN(0) DO¢    fn(A)=UPPER(fn(A))¢  OD¢  IF FN(2)=': OR FN(3)=': THEN RETURN FI¢  MOVEBLOCK(XMOBUFF+3,FN+1,FN(0))¢  XMOBUFF(0)=FN(0)+2¢  MOVEBLOCK(FN,XMOBUFF,XMOBUFF(0)+1)¢  FN(1)='D¢  FN(2)=':¢RETURN¢¢proc sendbyte(byte a)¢;  mask=7¢  data=a&3¢  a==rsh 2¢  while data&8 do od¢  data=a&3%4¢  a==rsh 2¢  do until data&8 od¢  data=a&3¢  a==rsh 2¢  while data&8 do od¢  data=a&3%4¢  do until data&8 od¢return¢¢¢byte func recbyte()¢byte rb,B1,B2,B3,B4¢;  mask=8¢  while data&4 do od¢  B1=data&3¢  data=0¢  do until data&4 od¢  B2=data&3¢  data=8¢  while data&4 do od¢  B3=data&3¢  data=0¢  do until data&4 od¢  B4=data&3¢  data=8¢  RB=B4¢  RB==LSH 2+B3¢  RB==LSH 2+B2¢  RB==LSH 2+B1¢return(rb)¢¢¢PROC SEND(byte array xmonam)¢¢BYTE A1,A2,BLOCKNUM,CKSUM,FINISHED¢CARD READSIZE,bytesleft¢¢  DD=56 data=7¢  DD=60 data=15¢  FINISHED=0¢  close(2)¢  editfn(xmonam)¢  open(2,xmonam,4,0)¢  PRINT("¢¢Sending file ")¢  printe(XMONAM)¢  bytesleft=0¢  blocknum=1¢  do¢   if FINISHED=0 AND bytesleft<128 then¢    bytesleft=readblock(2,buffer,4096)¢    IF EOF(2) THEN FINISHED=1 FI¢   fi¢   moveblock(xmobuff,buffer,128)¢   moveblock(buffer,buffer+128,4096)¢   if BYTESLEFT<128 then¢    for a1=bytesleft to 127 do¢     xmobuff(a1)=bytesleft¢    od¢    IF FINISHED=1 THEN FINISHED=2 FI¢   fi¢   bytesleft==-128¢   PRINT(" Block ")¢   PRINTCE(BLOCKNUM)¢   CKSUM=0¢   sendbyte(1)¢   sendbyte(BLOCKNUM&255)¢   sendbyte(255!(BLOCKNUM&255))¢   FOR A1=0 TO 127 DO¢    A2=XMOBUFF(A1)¢    sendbyte(A2)¢    CKSUM==+A2¢   OD¢   sendbyte(CKSUM)¢   BLOCKNUM==+1¢  UNTIL FINISHED=2 OD¢  sendbyte(4)¢  close(2)¢  DD=56 data=15¢  DD=60 data=15¢RETURN¢¢¢PROC RECV(byte array xmonam)¢¢BYTE BLKTHEM,CKTHEM,CKUS,FINISHED,¢     BBC,a1,a2,quit¢CARD BYTECNT,blkcnt,dmpcnt¢¢  DD=56 data=8¢  DD=60 data=15¢  QUIT=0¢  BYTECNT=0¢  FINISHED=0¢  BLkcnt=1¢  close(2)¢  editfn(xmonam)¢  open(2,xmonam,8,0)¢  PRINT("¢¢Receiving file ")¢  PRINTE(XMONAM)¢  DO¢    a1=recbyte()¢    if quit then return fi¢    if a1=1 then¢      PRINT(" Block ")¢      printce(blkcnt)¢      a1=recbyte()¢      a2=recbyte()¢      if (a2!255)=a1 and a1=(blkcnt&255) then¢       ckus=0¢       for a1=0 to 127 do¢        a2=recbyte()¢        xmobuff(a1)=a2¢        ckus==+a2¢       od¢       ckthem=recbyte()¢       if ckus=ckthem then¢        blkcnt==+1¢        moveblock(buffer+bytecnt,xmobuff,128)¢        bytecnt==+128¢        if bytecnt=4096 then¢         writeblock(2,buffer,4096)¢         bytecnt=0¢        fi¢       else¢        printe("Bad Checksum")¢        quit=1¢       fi¢      else¢       printe("Bad Block count")¢       quit=1¢      fi¢    elseif a1=4 then¢     a1=buffer(bytecnt-1)¢     for dmpcnt=bytecnt-128+a1 to bytecnt-1 do¢      if buffer(dmpcnt)#a1 then¢       writeblock(2,buffer,bytecnt)¢       CLOSE(2)¢       return¢      fi¢     od¢     writeblock(2,buffer,bytecnt-128+a1)¢     CLOSE(2)¢     return¢    fi¢  od    ¢  DD=56 data=15¢  DD=60 data=15¢return¢¢¢PROC MAIN()¢¢BYTE OPT¢BYTE ARRAY FN(60),mf(60)¢¢¢  DEVICE=0¢  CLOSE(7)¢  OPEN(7,"K:",4,0)¢  POKE(82,0)¢  graphics(0)¢  poke(752,1)¢  setcolor(1,0,0)¢  setcolor(2,0,8)¢  setcolor(4,0,4)¢  DO¢    CLOSE(2)¢    CLOSE(1)¢    DD=56 data=15¢    DD=60 data=15¢    PRINT("}¢ - The Better Bit Blast --- BBB...... -¢¢     - Jeff Jones == Sean Puckett -¢ ¢¢¢    ¢   Select transfer option:¢¢  1. Send file to other computer¢  2. Receive file")¢    print("¢  3. Send backup (requires metafile)¢  4. Receive backup (requires metafile)¢¢  5. Exit program¢¢¢      Key number of choice ->?")¢    OPT=GETD(7)¢    put(opt)¢    IF OPT='5 THEN [$6C$0A$00] RETURN¢    ELSEIF OPT='2 THEN¢      PRINT("¢¢Receive filename?¢->")¢      INPUTSD(0,FN)¢      IF FN(0) THEN¢        RECV(FN)¢      FI¢    ELSEIF OPT='1 THEN¢      PRINT("¢¢Send filename?¢->")¢      INPUTSD(0,FN)¢      IF FN(0) THEN¢        SEND(FN)¢      FI¢    ELSEIF OPT='3 THEN¢      PRINT("¢¢Send backup: Metafile filename?¢->")¢      inputsd(0,mf)¢      print("¢Sending backup files...¢")¢      OPEN(1,mf,4,0)¢      WHILE EOF(1)=0 DO¢        INPUTSD(1,FN)¢        PRINT(FN)¢        SEND(FN)¢        PUTE()¢      OD¢      CLOSE(1)¢    ELSEIF OPT='4 THEN¢      PRINT("¢Metafile filename¢?")¢      inputsd(0,mf)¢      PRINT("¢Receiving backup files...¢")¢      OPEN(1,mf,4,0)¢      WHILE EOF(1)=0 DO¢        INPUTSD(1,FN)¢        PRINT(FN)¢        RECV(FN)¢        PUTE()¢      OD¢      CLOSE(1)¢    FI¢  OD¢¢RETURN¢¢